package Model;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;

public class Casos2010 {
	private long id;
	private long reicidenciaOrigem;
	private long versao;
	private String dataTerminoMudanca;
	private String programa;
	private String classificao;
	private String tipo;
	private String grupoExecutor;
	private String executor;
	private String prioridade;
	private long tarefa;
	private String tipoTarefa;
	private String prioridadeTarefa;
	private String analiseCritica;
	private String dataTermino;
	private double tempoPrevisto;
	private double tempoExecutado;
	private double desvioTempo;
	private String analiseDesenv;
	private String analiseQual;
	private String analiseNeg;
	
	
	@Override
	public String toString() {
		return "Casos2010 [id=" + id + ", reicidenciaOrigem="
				+ reicidenciaOrigem + ", versao=" + versao
				+ ", dataTerminoMudanca=" + dataTerminoMudanca + ", programa="
				+ programa + ", classificao=" + classificao + ", tipo=" + tipo
				+ ", grupoExecutor=" + grupoExecutor + ", executor=" + executor
				+ ", prioridade=" + prioridade + ", tarefa=" + tarefa
				+ ", tipoTarefa=" + tipoTarefa + ", prioridadeTarefa="
				+ prioridadeTarefa + ", analiseCritica=" + analiseCritica
				+ ", dataTermino=" + dataTermino + ", tempoPrevisto="
				+ tempoPrevisto + ", tempoExecutado=" + tempoExecutado
				+ ", desvioTempo=" + desvioTempo + ", analiseDesenv="
				+ analiseDesenv + ", analiseQual=" + analiseQual
				+ ", analiseNeg=" + analiseNeg + "]";
	}

	public Casos2010(long id, long reicidenciaOrigem, long versao, String dataTerminoMudanda, String programa,
			String classificacao, String tipo, String grupoExecutor, String executor, String prioridade, 
			long tarefa, String tipoTarefa, String prioridadeTarefa, String analiseCritica, String dataTermino,
			double tempoPrevisto, double tempoExecutado, String analiseDesenv, String analiseQual, String analiseNeg){
		NumberFormat fmt = new DecimalFormat("0.0000");
		setId(id);
		setReicidenciaOrigem(reicidenciaOrigem);
		setVersao(versao);
		setDataTerminoMudanca(dataTerminoMudanda);
		setPrograma(programa);
		setClassificao(classificacao);
		setTipo(tipo);
		setGrupoExecutor(grupoExecutor);
		setExecutor(executor);
		setPrioridade(prioridade);
		setTarefa(tarefa);
		setTipoTarefa(tipoTarefa);
		setPrioridadeTarefa(prioridadeTarefa);
		setAnaliseCritica(analiseCritica);
		setDataTermino(dataTermino);
		setTempoPrevisto(tempoPrevisto);
		setTempoExecutado(tempoExecutado);
		setAnaliseDesenv(analiseDesenv);
		setAnaliseQual(analiseQual);
		setAnaliseNeg(analiseNeg);
		if(tempoExecutado != 0 && tempoPrevisto != 0)
			setDesvioTempo(Double.parseDouble(fmt.format((tempoExecutado - tempoPrevisto) / tempoExecutado).replace(",", ".")));
	}
	
	public ArrayList<Double> getVetorCaracteristicas(){
		ArrayList<Double> temp = new ArrayList<Double>();
		temp.add(this.getDesvioTempo());
		return temp;
	}
	
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public long getReicidenciaOrigem() {
		return reicidenciaOrigem;
	}
	public void setReicidenciaOrigem(long reicidenciaOrigem) {
		this.reicidenciaOrigem = reicidenciaOrigem;
	}
	public long getVersao() {
		return versao;
	}
	public void setVersao(long versao) {
		this.versao = versao;
	}
	public String getDataTerminoMudanca() {
		return dataTerminoMudanca;
	}
	public void setDataTerminoMudanca(String dataTerminoMudanca) {
		this.dataTerminoMudanca = dataTerminoMudanca;
	}
	public String getPrograma() {
		return programa;
	}
	public void setPrograma(String programa) {
		this.programa = programa;
	}
	public String getClassificao() {
		return classificao;
	}
	public void setClassificao(String classificao) {
		this.classificao = classificao;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public String getGrupoExecutor() {
		return grupoExecutor;
	}
	public void setGrupoExecutor(String grupoExecutor) {
		this.grupoExecutor = grupoExecutor;
	}
	public String getExecutor() {
		return executor;
	}
	public void setExecutor(String executor) {
		this.executor = executor;
	}
	public String getPrioridade() {
		return prioridade;
	}
	public void setPrioridade(String prioridade) {
		this.prioridade = prioridade;
	}
	public long getTarefa() {
		return tarefa;
	}
	public void setTarefa(long tarefa) {
		this.tarefa = tarefa;
	}
	public String getTipoTarefa() {
		return tipoTarefa;
	}
	public void setTipoTarefa(String tipoTarefa) {
		this.tipoTarefa = tipoTarefa;
	}
	public String getPrioridadeTarefa() {
		return prioridadeTarefa;
	}
	public void setPrioridadeTarefa(String prioridadeTarefa) {
		this.prioridadeTarefa = prioridadeTarefa;
	}
	public String getAnaliseCritica() {
		return analiseCritica;
	}
	public void setAnaliseCritica(String analiseCritica) {
		this.analiseCritica = analiseCritica;
	}
	public String getDataTermino() {
		return dataTermino;
	}
	public void setDataTermino(String dataTermino) {
		this.dataTermino = dataTermino;
	}
	public double getTempoPrevisto() {
		return tempoPrevisto;
	}
	public void setTempoPrevisto(double tempoPrevisto) {
		this.tempoPrevisto = tempoPrevisto;
	}
	public double getTempoExecutado() {
		return tempoExecutado;
	}
	public void setTempoExecutado(double tempoExecutado) {
		this.tempoExecutado = tempoExecutado;
	}
	public String getAnaliseDesenv() {
		return analiseDesenv;
	}
	public void setAnaliseDesenv(String analiseDesev) {
		this.analiseDesenv = analiseDesev;
	}
	public String getAnaliseQual() {
		return analiseQual;
	}
	public void setAnaliseQual(String analiseQual) {
		this.analiseQual = analiseQual;
	}
	public String getAnaliseNeg() {
		return analiseNeg;
	}
	public void setAnaliseNeg(String analiseNeg) {
		this.analiseNeg = analiseNeg;
	}

	public double getDesvioTempo() {
		return desvioTempo;
	}

	public void setDesvioTempo(double desvioTempo) {
		this.desvioTempo = desvioTempo;
	}
}
